Le Cryptage en S.S.T.V 
 
 

Introduction

 

Pouvoir transmettre et recevoir en SSTV, c'est bien mais si l'on pouvait trouver un moyen de crypter, ce serait mieux !
 
D'abord il faut savoir que la transmission s'effectue analogiquement.
Et oui, c'est en grande partie une erreur de dire que la SSTV est un mode numérique !
 
Donc, le problème consistera à crypter un signal qui est très sensible aux parasites ... pas facile ...
 
Si on veut crypter, il faut le faire d'une manière qui ne perturbe pas la transmission, sinon on va se retrouver avec une image complètement illisible à la sortie du récepteur et du décrypteur.
En claire, il faut conserver un aspect de continuité entre les pixels.
( ou pour ceux qui préfèrent la version mathématique : il faut que la dérivée de la fonction associée au signal soit majorée par une constante K. Au-delà, la perte de qualité sera directement proportionnelle à la différence signal' - K )

La solution que je propose est, sur le principe, toute simple.
Elle est basée sur un principe multi-clef de cryptage.
Il suffit de combiner plusieurs systèmes afin d'obtenir un cryptage "béton".
 


Le principe de fonctionnement


 
Cryptage de départ par mélange de lignes

Une image est une suite de ligne, et on va simplement intervertir des lignes d'une manière prédéfini par une "clef de cryptage" ( version âge des cavernes):

 

Image en clair
 
ligne 1 - ligne 1 - ligne 1 - ligne 1 - ligne 1 - ligne 1 - ligne 1 - ligne 1 - ligne 1 - ligne 1
ligne 2 - ligne 2 - ligne 2 - ligne 2 - ligne 2 - ligne 2 - ligne 2 - ligne 2 - ligne 2 - ligne 2
ligne 3 - ligne 3 - ligne 3 - ligne 3 - ligne 3 - ligne 3 - ligne 3 - ligne 3 - ligne 3 - ligne 3
ligne 4 - ligne 4 - ligne 4 - ligne 4 - ligne 4 - ligne 4 - ligne 4 - ligne 4 - ligne 4 - ligne 4
ligne 5 - ligne 5 - ligne 5 - ligne 5 - ligne 5 - ligne 5 - ligne 5 - ligne 5 - ligne 5 - ligne 5
ligne 6 - ligne 6 - ligne 6 - ligne 6 - ligne 6 - ligne 6 - ligne 6 - ligne 6 - ligne 6 - ligne 6
ligne 7 - ligne 7 - ligne 7 - ligne 7 - ligne 7 - ligne 7 - ligne 7 - ligne 7 - ligne 7 - ligne 7
ligne 8 - ligne 8 - ligne 8 - ligne 8 - ligne 8 - ligne 8 - ligne 8 - ligne 8 - ligne 8 - ligne 8
ligne 9 - ligne 9 - ligne 9 - ligne 9 - ligne 9 - ligne 9 - ligne 9 - ligne 9 - ligne 9 - ligne 9
 
Image cryptée
 
 
clefdecryptage=1,4,6,7,2,8,3,5,9

ligne 1 - ligne 1 - ligne 1 - ligne 1 - ligne 1 - ligne 1 - ligne 1 - ligne 1 - ligne 1 - ligne 1
ligne 4 - ligne 4 - ligne 4 - ligne 4 - ligne 4 - ligne 4 - ligne 4 - ligne 4 - ligne 4 - ligne 4
ligne 6 - ligne 6 - ligne 6 - ligne 6 - ligne 6 - ligne 6 - ligne 6 - ligne 6 - ligne 6 - ligne 6
ligne 7 - ligne 7 - ligne 7 - ligne 7 - ligne 7 - ligne 7 - ligne 7 - ligne 7 - ligne 7 - ligne 7
ligne 2 - ligne 2 - ligne 2 - ligne 2 - ligne 2 - ligne 2 - ligne 2 - ligne 2 - ligne 2 - ligne 2
ligne 8 - ligne 8 - ligne 8 - ligne 8 - ligne 8 - ligne 8 - ligne 8 - ligne 8 - ligne 8 - ligne 8
ligne 3 - ligne 3 - ligne 3 - ligne 3 - ligne 3 - ligne 3 - ligne 3 - ligne 3 - ligne 3 - ligne 3
ligne 5 - ligne 5 - ligne 5 - ligne 5 - ligne 5 - ligne 5 - ligne 5 - ligne 5 - ligne 5 - ligne 5
ligne 9 - ligne 9 - ligne 9 - ligne 9 - ligne 9 - ligne 9 - ligne 9 - ligne 9 - ligne 9 - ligne 9
 
C'est fini pour la théorie, en pratique voilà ce que ça donne:
 
 

Image en claire
 
 
Image cryptée
 
 

Facile à décrypter ? Pas vraiment, en tout cas pas si l'on ne dispose pas de la clef.
L'exemple est sur 9 lignes, mais une image SSTV en comporte des centaines.
Une petite application mathématique : j'ai 256 lignes, combien de possibilité de cryptage ?
Hé hé hé ... qui dira que les maths ne servent à rien ? ( surtout en cryptage ).

je prends une ligne au hasard, j'ai 256 possibilités, pour chacune de ces possibilités, j'en ai encore 255, et ainsi de suite ce qui donne 256*255*254*....ect ...*2*1 possibilités = 256! ("factoriel 256" pour ceux qui ne connaissent pas )

Ce qui donne un chiffre pas dégeulasse du tout.

Donc vous êtes à l'abris des regards indiscrets ( = 99,9 % de la population )

Par contre, il y aura toujours une personne sur mille qui, par une autre approche plus intelligente que la "brute force" de base, arrivera à décrypter.
 
Remarque: Ce système correspond à la première version de SSTV SCRAMBLER
 
 

+ Cryptage par symétrie ( effet "mirroir" )
 
 
C'est pourquoi on peut encore compliquer la sauce en inversant une ligne sur deux (comme si l'on regarde la ligne dans un miroir), ou alors suivant une autre clef du style clefdesecondniveau = 1,0,1,0,0,0,1,0,1,0 ( avec 1 = normal et 0 = inversé ).
 

Voici le résultat:
 

 
Remarque: Ce système correspond à la seconde version de SSTV SCRAMBLER
 
 
+ Cryptage par effet de "négatif" photo
 

Tout le monde à déjà modifié une photo avec le filtre "image en négatif" sous photoShop ou Paint shop Pro non ?
Et bien on va faire exactement la même chose mais sur certaines lignes composant l'image seulement.
On utilise donc une autre clef de cryptage ( du type clef_de_troisième_niveau = {0,1,0,1,1, ... } avec 0 = on fait rien et 1 = on passe la ligne en "négatif photo" ).
 
J'ai récement aidé des étudiants à réaliser un programme utilisant ces 3 systèmes combinés et le résultat était assez remarquable ( impossibilité de deviner l'image de départ ).
 
 

Cryptage par effet d'inversion de couches RGB
 
Chaque lignes est en fait composé de 3 lignes : un dégradé de rouge, un de bleu et un de vert ( Red Green Blue = RGB ).
 
Jusqu'ici, on pouvait deviner l'image (quoique ça commençait à devenir difficile).
Pour rajouter un troisième niveau, on peut inverser les couches RGB(rouge vert bleu ), ça marche (j'ai testé) et l'oeil humain commence à lâcher le morceau.
 
En pratique, voici donc où on arrive avec la même image de départ et la superposition des système de cryptage mélange/inversion lignes/inversion RGB :
 
 
 
Remarque: Ce système est celui utilisé par SSTV SCRAMBLER version 3.0
 
 
Décomposition des lignes en couches RGB
 
 
Alors on va garder le système de crytage de niveau 2 ( inversion/effet "mirroir" ) mais on l'applique non pas à des lignes mais à ces "fraction de lignes" ce qui fait non pas 256 lignes mais 256 x 3 = 768 "fractions" de lignes.

Rouge première ligne            numéro 1
Vert première ligne               numéro 2
Bleu première ligne               numéro 3

Rouge deuxième ligne           numéro 4
Vert deuxième ligne              numéro 5
Bleu deuxième lligne             numéro 6

... ect ...
ce qui donne en pratique :
 

 

et on mélange les numéros suivant une clef, ce qui donne au final :
 

Pas mal non ?
 
Remarque: le logiciel SSTV SCRAMBLER 4 utilise ce procédé.
 

La transmission hertzienne

 
Les essais de transmission
 
Jusqu'à maintenant, c'était de la semi-pratique : on transmet l'image cryptée par e-mail, on la décrypte sans problème.
 
Que devient ce système dans le cas d'une transmission hertzienne ?
Le cryptage ne va-t-il pas détruire l'image ?
L'aspect de continuité a-t-il été respecté ?
 
Les logiciels utilisants le système de cryptage "mélange des lignes" , "mirroir", "négatif" et "inversion RGB" fonctionnent très bien et résistent à la transmission.
Mon travail s'arrète ici, c'est à vous de jouer maintenant !
Il ne vous reste plus qu'à installer SSTV scrambler version 4.0 et à faire des essais de transmission !
( D'après le peu que j'ai pu essayer, ce système résiste mal au mode MARTIN M1 : l'image devient "tremblante" à la sortie du récepteur et du décrypteur" ).
 
N'hésitez surtout pas à m'envoyer les résultats de vos essaies par e-mail !
 

Le programme

Installation du logiciel

 
Comment installer mon logiciel ?
Il faut oublier tout de suite le simple SETUP.EXE pour les lamers infos, je n'ai pas le temps d'en faire un.
 
- Dézipper le fichier SSTVSC4.ZIP dans un répertoire, par exemple C:\SSTVSC4
- Créer deux icones : une avec le fichier C:\SSTVSC4\SC4.EXE ( le "scrambler" ) et l'autre avec c:\SSTVSC4\UNSC4.EXE ( le "déscrambler" )
- Lancer C:\SC4\SETUP.EXE
- Entrer le nom du fichier source ( à crypter ) par exemple C:\SSTVSC4\SCRAMBLE\SOURCETX.TGA
- Entrer le nom du fichier de destination ( une fois crypté ) par exemple C:\SSTVSC4\SCRAMBLE\TX.TGA
- Entrer le nom du fichier source ( à décrypter ) par exemple C:\SSTVSC4\SCRAMBLE\SOURCERX.TGA
- Entrer le nom du fichier destination ( une fois décrypté ) par exemple C:\SSTVSC4\SCRAMBLE\RX.TGA
- Entrer le nom de la clef de cryptage à utiliser par exemple C:\SSTVSC4\ALPHA.KEY
Le fichier C:\SCRAMBLE.004 va être créé.
 
 

Utilisation du logiciel
 

Créer un dossier "C:\SSTVSC4\SCRAMBLE" dans lequel on enregistre :
- une images à crypter SOURCETX.TGA
- une images à décrypter SOURCERX.TGA

Le logiciel se chargera de créer les 2 autres ( une fois crypté et une fois décrypté ) qui s'appellerons TX.TGA et RX.TGA.
 


Conclusion

 

Voilà, c'est fini on ne peut pas faire mieux sans détruire l'image en la cryptant (en tout cas, je vois pas comment on pourrait faire autrement).
 
Je crois donc que vous avez devant vous le moyen de cryptage le plus puissant qui existe pour la SSTV.
Si on essayait de faire plus puissant, on serait alors obligé de perdre en qualité lors de la transmission hertzienne => c'est pas le but recherché.
 
Le décryptage est impossible pour tout amateur.
Il faudrait procéder par recherche de ressemblance, et en plus isoler les couches RGB ... bonne chance!
 
( Avis à tous les Hackers : c'est un défit intéressant ... le cracker de scrambleur dans un prochain HVU ? )

 

Written by Waves Spirit 66